#ifndef _STACK_H_
#define _STACK_H_ 
#include "lib.h"

struct _stack_;
typedef struct _stack_  stack_s;
typedef ret_e (*loop_fun_f)(void *data,void **context);
stack_s * stack_create(int size);
void  stack_destory(stack_s * stack);
ret_e stack_push(stack_s *stack,void * data);
ret_e stack_pop(stack_s *stack,void ** data);
ret_e stack_is_empty(stack_s * stack);
ret_e stack_top(stack_s *stack,void ** data);
int stack_length(stack_s * stack);
ret_e stack_print(stack_s *stack,loop_fun_f print_fun);
#endif

